package cn.chuan.keygen.module.verify.controller.admin.card.vo;

import io.swagger.v3.oas.annotations.media.Schema;
import lombok.*;
import com.alibaba.excel.annotation.*;
import cn.chuan.keygen.framework.excel.core.annotations.DictFormat;
import cn.chuan.keygen.framework.excel.core.convert.DictConvert;

@Schema(description = "管理后台 - 充值卡 Response VO")
@Data
@ExcelIgnoreUnannotated
public class CardRespVO {

    @Schema(description = "主键", requiredMode = Schema.RequiredMode.REQUIRED)
    @ExcelProperty("主键")
    private Long id;

    @Schema(description = "卡类单位", example = "3")
    @ExcelProperty(value = "卡类单位", converter = DictConvert.class)
    @DictFormat("card_type") // TODO 代码优化：建议设置到对应的 CardTypeEnum 枚举类中
    private String cardType;

    @Schema(description = "卡值")
    @ExcelProperty("卡值")
    private Integer cardValue;

    @Schema(description = "设备ID")
    @ExcelProperty("设备ID")
    private String cardDeviceNumber;

    @Schema(description = "充值卡号")
    @ExcelProperty("充值卡号")
    private String cardNumber;

    @Schema(description = "是否封停")
    @ExcelProperty(value = "是否封停", converter = DictConvert.class)
    @DictFormat("card_closure") // TODO 代码优化：建议设置到对应的 ClosureEnum 枚举类中
    private Integer closure;

    @Schema(description = "结束时间")
    @ExcelProperty("结束时间")
    private Long endDate;

    @Schema(description = "销售状态", example = "2")
    @ExcelProperty(value = "销售状态", converter = DictConvert.class)
    @DictFormat("sell_status") // TODO 代码优化：建议设置到对应的 SellStatusEnum 枚举类中
    private Integer sellStatus;

    @Schema(description = "开始使用时间")
    @ExcelProperty("开始使用时间")
    private Long startDate;

    @Schema(description = "使用状态", example = "1")
    @ExcelProperty(value = "使用状态", converter = DictConvert.class)
    @DictFormat("use_status") // TODO 代码优化：建议设置到对应的 UseStatusEnum 枚举类中
    private Integer useStatus;

    @Schema(description = "创建者")
    @ExcelProperty("创建者")
    private String creator;

    @Schema(description = "备注")
    @ExcelProperty("备注")
    private String remarks;

}